package cn.bjxy.shishaolong.ra_room.entity;

import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;

/**
 * <p>
 * 老师答疑室
 * </p>
 *
 * @author 时少龙
 * @since 2019-04-13
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("t_raroom")
public class Raroom implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    @TableId(value = "tid", type = IdType.AUTO)
    private Integer tid;

    /**
     * 老师用户的id
     */
    @TableField("teacher_id")
    private Integer teacherId;

    /**
     * 状态
     */
    @TableField("`status`")
    private Integer status;

    /**
     * 答疑室简介
     */
    @TableField("`desc`")
    private String desc;

    /**
     * 创建时间
     */
    @TableField("created_at")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createdAt;

    /**
     * 修改时间
     */
    @TableField("updated_at")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updatedAt;

    /**
     * 删除时间
     */
    @TableField("deleted_at")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime deletedAt;

    /*=====================查询字段===================*/
    /**
     * 是否为管理员 1：是   2：不是 根据这个字段的值确定是否显示已删除的答疑室
     */
    @TableField(exist = false)
    private Integer isAdmin;

    /**
     * 老师名
     */
    @TableField(exist = false)
    private String teacherName;

    /**
     * 学生人数
     */
    @TableField(exist = false)
    private Integer studentCount;

    /**
     * 专业IDS
     */
    @TableField(exist = false)
    private List<Integer> professionIds;

    /**
     * 课程ids
     */
    @TableField(exist = false)
    private List<Integer> courseIds;

    /**
     * 学生ids
     */
    @TableField(exist = false)
    private List<Integer> studentIds;

    /**
     * 每个答疑室相关联的所有信息
     */
    @TableField(exist = false)
    private RaroomQueryEntity allData;

    /**
     * 创建日期的起始时间
     */
    @TableField(exist = false)
    private LocalDateTime createdDateStart;

    /**
     * 创建日期的截止时间
     */
    @TableField(exist = false)
    private LocalDateTime createdDateEnd;

    /**
     * 答疑室Ids  用户in 批量查询答疑室
     */
    @TableField(exist = false)
    private List<Integer> roomIds;
}
